package com.duguo.dynamicmvc.factory.processor.model;

import java.util.Map;

import javassist.CtClass;
import javassist.CtMethod;

import com.duguo.dynamicmvc.factory.ControllerFactory;

public interface ModelParameterCreator {

	public Object getParameterResolver(ControllerFactory controllerFactory, String paramName) throws Exception;

	public String getParameterNameInRequest(CtClass modelImplCtClass, String fieldName, CtClass fieldType, ModelAnnotationReader modelAnnotationReader) throws Exception;

	public String getNewUsedParamString(Map<String, CtClass> usedParams);

	public String getNewRequestParamName(Map<String,CtClass> usedParams, CtMethod controllerMethod) throws Exception;

	public String getNewResponseParamName(Map<String,CtClass> usedParams, CtMethod controllerMethod) throws Exception;

	public String getNewPathInfoName(Map<String,CtClass> usedParams, CtMethod controllerMethod) throws Exception;

	public String getNewParamName(CtClass paramCtClass, Map<String,CtClass> usedParams, CtMethod controllerMethod, boolean ignoreNotFound) throws Exception;	

}
